// 图标函数 - 根据类名自动引入对应图片
.icon(@name) {
  background-image: url('@/assets/images/menu/@{name}.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

// 激活状态图标函数
.icon-active(@name) {
  background-image: url('@/assets/images/menu/@{name}-active.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

// 基础图标样式
.icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  vertical-align: middle;
}

// 根据类名调用不同图标
.chat {
  .icon('chat');
}

.create {
  .icon('create');
}

.log {
  .icon('log');
}

.exit {
  .icon('exit');
}

// 激活状态的图标
.chat.active {
  .icon-active('chat');
}

.create.active {
  .icon-active('create');
}

.log.active {
  .icon-active('log');
}

// 图标尺寸变体
.icon-sm {
  width: 16px;
  height: 16px;
}

.icon-md {
  width: 20px;
  height: 20px;
}

.icon-lg {
  width: 24px;
  height: 24px;
}

.icon-xl {
  width: 36px;
  height: 36px;
}

// 悬停效果
.icon-hover {
  transition: all 0.3s ease;

  &:hover {
    transform: scale(1.1);
    opacity: 0.8;
  }
}

/*
使用示例：

1. 基础使用：
<span class="icon icon-md chat"></span>

2. 激活状态：
<span class="icon icon-md chat active"></span>

3. 不同尺寸：
<span class="icon icon-sm chat"></span>
<span class="icon icon-lg chat"></span>

4. 添加悬停效果：
<span class="icon icon-md chat icon-hover"></span>

5. 在Vue组件中使用：
<span class="icon icon-md" :class="[iconName, { active: isActive }]"></span>

注意事项：
- 图片文件需要放在 src/assets/images/menu/ 目录下
- 图片命名规则：iconName.png 和 iconName-active.png
- 在less中添加对应的类名和.icon()函数调用
*/
